﻿using Practico2.Business;
using Practico2.DataTypes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Practico2.WebAccess
{
    public partial class AdministradorNoticias : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                CompletarDDLPaises();
                CompletarDDLCiudades();
            }
        }

        private void CompletarDDLPaises()
        {
            ddlPais.DataSource = PaisManager.ObtenerPaises();
            ddlPais.DataTextField = "NombrePais";
            ddlPais.DataValueField = "IdPais";
            ddlPais.DataBind();
        }

        private void CompletarDDLCiudades()
        {
            ddlCiudades.DataSource = CiudadManager.ObtenerCiudadesSegunPais(int.Parse(ddlPais.SelectedValue.ToString()));
            ddlCiudades.DataTextField = "NombreCiudad";
            ddlCiudades.DataValueField = "IdCiudad";
            ddlCiudades.DataBind();
        }

        protected void btnAceptar_Click(object sender, EventArgs e)
        {
            if (Session["noticia"]==null)
            {
                DTNoticia nuevaNoticia = new DTNoticia();

                nuevaNoticia.IdCiudad = int.Parse(ddlCiudades.SelectedValue.ToString());
                nuevaNoticia.FechaNoticia = DateTime.Now;
                nuevaNoticia.TituloNoticia = txtTitulo.Text;
                nuevaNoticia.DescripcionNoticia = txtNoticia.Text;

                NoticiasManager.AgregarNoticia(nuevaNoticia);

            }
            else 
            {

                DTNoticia noticia = (DTNoticia)Session["Noticia"];
                noticia.DescripcionNoticia = txtNoticia.Text;
                noticia.TituloNoticia = txtTitulo.Text;

                string idPais = (String)Session["idPais"];

                NoticiasManager.ActualizarNoticia(noticia);

                Session.Remove("idPais");
                Session.Remove("Noticia");
            
            }
            Response.Redirect("AdministradorNoticias.aspx");
   
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Session.Remove("Noticia");
            Session.Remove("idPais");
            ddlPais.Enabled = true;
            ddlCiudades.Enabled = true;
            Response.Redirect("AdministradorNoticias.aspx");

        }

        protected void GridViewNoticias_SelectedIndexChanged(object sender, EventArgs e)
        {
            
            string idPais = GridViewNoticias.Rows[GridViewNoticias.SelectedIndex].Cells[1].Text;
            string idNoticia = GridViewNoticias.Rows[GridViewNoticias.SelectedIndex].Cells[3].Text;
            DTNoticia noticiaSeleccionada = NoticiasManager.ObtenerNoticia(int.Parse(idNoticia));

            txtNoticia.Text = noticiaSeleccionada.DescripcionNoticia;
            txtTitulo.Text = noticiaSeleccionada.TituloNoticia;
            ddlPais.SelectedValue = idPais;
            CompletarDDLCiudades();
            ddlCiudades.SelectedValue = noticiaSeleccionada.IdCiudad.ToString();

            ddlPais.Enabled = false;
            ddlCiudades.Enabled = false;

            Session.Add("idPais", idPais);
            Session.Add("Noticia",noticiaSeleccionada);

        }

        protected void ddlPais_SelectedIndexChanged(object sender, EventArgs e)
        {
            CompletarDDLCiudades();
        }

    }
}